Load Packages
Making Dataframes
color_a <- c("#58b5e1","#1c5b5a","#46ebdc","#1f4196","#e28de2","#818bd7","#e4ccf1","#82185f","#f849b6",'Mecklenburg = "#000000","#5e34bc","#b7d165","#30d52e","#ff5357")
color_na <- c("#1c5b5a","#46ebdc","#1f4196","#e28de2","#818bd7","#e4ccf1","#82185f","#f849b6","#000000","#5e34bc","#b7d165","#30d52e","#ff5357")
counties <- c('Anson', 'Cabarrus', 'Catawba', 'Chester', 'Cleveland', 'Gaston', 'Iredell', 'Lancaster', 'Lincoln', 'Mecklenburg', 'Rowan', 'Stanly', 'Union', 'York')
Error: unexpected symbol in:
"color_na <- c("#1c5b5a","#46ebdc","#1f4196","#e28de2","#818bd7","#e4ccf1","#82185f","#f849b6","#000000","#5e34bc","#b7d165","#30d52e","#ff5357")
counties <- c('Anson"
Demographics
Population
plot_ly(countypop, x=~YEAR, y=~CHANGE, color=~CTYNAME, type='scatter', mode='lines', colors=color_a)
Warning: Duplicate levels detected
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Duplicate levels detected
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Duplicate levels detected
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Duplicate levels detected
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Warning: Some values were outside the color scale and will be treated as NA
Place of Birth
plot_ly(birthplace %>% filter(Year == 2019),
y=~County, x=~Numerator_value/Total, color=~Measure,
type='bar') %>%
layout(barmode = 'stack')
Economy
Unemployment
#### GO TO EXCEL SOURCE AND PULL DATA FOR CHESTER and STANLY
ggplot(unemployment) +
geom_line(aes(x = Date, y = Unemployment, color = County))

ggplot(unemployment %>% filter(Year == 2015, Month == 6)) +
geom_col(aes(x = County, y = Unemployment, fill = County)) + coord_flip()

Income
ggplot(income %>% filter(Year == 2014), aes(x = County, y = (Numerator_value / Total), fill = Measure), position = 'fill') +
geom_col() +
scale_y_continuous(labels = scales::percent) +
coord_flip()

Education
Educational Attainment
ggplot(arrange(education, Order) %>% filter(Year == 2014), aes(x = County, y = (Numerator_value / Total), fill = Order), position = 'fill') +
geom_col() +
scale_y_continuous(labels = scales::percent) +
coord_flip()+
scale_fill_discrete(labels = attainment_lvl, name = '')
Health
Health Care Coverage
coverage %>% filter(Measure == "Health Insurance Total", Year == 2017) %>%
ggplot(., aes(x = County, y = Numerator_value, fill = County))+
geom_col() +
scale_y_continuous(labels = comma) +
coord_flip()
coverage %>% filter(Year == 2017, !(Measure %in% c("Health Insurance Total", "People with Health Insurance"))) %>%
ggplot(aes(x = County, y = Numerator_value, fill = Measure, position = Measure)) +
geom_col(position = "dodge") +
scale_y_continuous(labels = comma) +
coord_flip()
Housing
Housing Age
housing %>% filter(Year == 2017) %>%
ggplot(aes(x= County, y = Year-Numerator_value, fill = County)) +
geom_col() +
coord_flip()
Social Well-Being
Poverty
poverty %>% filter(Year == 2010) %>%
ggplot(., aes(x = County, y = Numerator_value/Denominator_value, fill = County)) +
geom_col() +
coord_flip()
Transportation
##Commuting Modes
# Way too many missing values to create a substantive visualization.
transportation %>% filter(Year == 2014) %>%
ggplot(aes(x = County, y = Numerator_value, fill = Measure, position = Measure)) +
geom_col(position = 'dodge') +
scale_y_continuous(labels = comma) +
coord_flip()
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIExvYWQgUGFja2FnZXMNCmBgYHtyfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGdndGhlbWVzKQ0KbGlicmFyeShzY2FsZXMpDQpsaWJyYXJ5KHJlYWR4bCkNCmxpYnJhcnkocGxvdGx5KQ0KYGBgDQoNCg0KIyBNYWtpbmcgRGF0YWZyYW1lcw0KYGBge3J9DQpjb2xvcl9hIDwtIGMoIiM1OGI1ZTEiLCIjMWM1YjVhIiwiIzQ2ZWJkYyIsIiMxZjQxOTYiLCIjZTI4ZGUyIiwiIzgxOGJkNyIsIiNlNGNjZjEiLCIjODIxODVmIiwiI2Y4NDliNiIsIiMwMDAwMDAiLCIjNWUzNGJjIiwiI2I3ZDE2NSIsIiMzMGQ1MmUiLCIjZmY1MzU3IikNCmNvbG9yX25hIDwtIGMoIiMxYzViNWEiLCIjNDZlYmRjIiwiIzFmNDE5NiIsIiNlMjhkZTIiLCIjODE4YmQ3IiwiI2U0Y2NmMSIsIiM4MjE4NWYiLCIjZjg0OWI2IiwiIzAwMDAwMCIsIiM1ZTM0YmMiLCIjYjdkMTY1IiwiIzMwZDUyZSIsIiNmZjUzNTciKQ0KY291bnRpZXMgPC0gYygnQW5zb24nLCAnQ2FiYXJydXMnLCAnQ2F0YXdiYScsICdDaGVzdGVyJywgJ0NsZXZlbGFuZCcsICdHYXN0b24nLCAnSXJlZGVsbCcsICdMYW5jYXN0ZXInLCAnTGluY29sbicsICdNZWNrbGVuYnVyZycsICdSb3dhbicsICdTdGFubHknLCAnVW5pb24nLCAnWW9yaycpDQphdHRhaW5tZW50X2x2bCA8LSBjKCdIaWdoZXN0IERlZ3JlZTogTGVzcyB0aGFuIGEgSGlnaCBTY2hvb2wgRGlwbG9tYScsICdIaWdoZXN0IERlZ3JlZTogSGlnaCBTY2hvb2wgRGlwbG9tYScsICdIaWdoZXN0IERlZ3JlZTogU29tZSBDb2xsZWdlLCBObyBEZWdyZWUnLCAiSGlnaGVzdCBEZWdyZWU6IEFzc29jaWF0ZSdzIERlZ3JlZSIsICJIaWdoZXN0IERlZ3JlZTogQmFjaGVsb3IncyBEZWdyZWUiLCAiSGlnaGVzdCBEZWdyZWU6IEdyYWR1YXRlIG9yIFByb2Zlc3Npb25hbCBEZWdyZWUiKQ0KZm9yZWlnbl9kZXRhaWwgPC0gYygnRm9yZWlnbi1Cb3JuOiBBZnJpY2EnLCAnRm9yZWlnbi1Cb3JuOiBBc2lhJywgJ0ZvcmVpZ24tQm9ybjogRXVyb3BlJywgJ0ZvcmVpZ24tQm9ybjogTGF0aW4gQW1lcmljYScsICdQbGFjZSBvZiBCaXJ0aCBUb3RhbCcpDQoNCmNvdW50eXBvcCA8LSByYmluZChyZWFkX2NzdigiY2MtZXN0MjAxOS1hZ2VzZXgtMzcuY3N2Iiwgc2hvd19jb2xfdHlwZXMgPSBGKSwNCiAgICAgICAgICAgICAgICAgICByZWFkX2NzdigiY2MtZXN0MjAxOS1hZ2VzZXgtNDUuY3N2Iiwgc2hvd19jb2xfdHlwZXMgPSBGKSkgJT4lDQogIHNlbGVjdCgtU1VNTEVWLCAtU1RBVEUsIC1DT1VOVFkpICU+JQ0KICBtdXRhdGUoQ1RZTkFNRSA9IGdzdWIoJyBDb3VudHknLCAnJywgQ1RZTkFNRSksDQogICAgICAgICBZRUFSID0gYXMuaW50ZWdlcihZRUFSICsgMjAwNykpICU+JQ0KICBmaWx0ZXIoQ1RZTkFNRSAlaW4lIGNvdW50aWVzLCBZRUFSID49IDIwMTAsDQogICAgICAgICAhKFNUTkFNRSA9PSAnU291dGggQ2Fyb2xpbmEnICYgQ1RZTkFNRSA9PSAnVW5pb24nKSkgJT4lDQogIGRpc3RpbmN0KCkNCiMgWWVhciAzIGlzIDIwMTAsIFllYXIgMTIgaXMgMjAxOQ0KDQojIE1ha2luZyBDaGFybG90dGUgUmVnaW9uDQpjciA8LSBjb3VudHlwb3BbMToxMCxdICU+JQ0KICBtdXRhdGUoQ1RZTkFNRSA9ICdDaGFybG90dGUgUmVnaW9uJykNCmZvcihpIGluIDQ6bGVuZ3RoKGNvbG5hbWVzKGNvdW50eXBvcCkpKSB7DQogIGZvcihqIGluIDE6MTApew0KICAgIGNyW2osaV0gPC0gc3VtKChjb3VudHlwb3AgJT4lIGZpbHRlcihZRUFSID09IGorMjAwOSkpW2ldKQ0KICB9DQp9DQoNCiMgTWFraW5nIEFnZSAmIEdlbmRlciBkYXRhIGZyYW1lDQpwb3BfYWdlX2dlbmRlciA8LSByYmluZChjb3VudHlwb3AsIGNyKQ0KY291bnR5cG9wIDwtIGNyICU+JSB0cmFuc211dGUoWUVBUiA9IFlFQVIsIENIQVJMT1RURVBPUCA9IFBPUEVTVElNQVRFKSAlPiUgcmlnaHRfam9pbihjb3VudHlwb3AsIGJ5ID0gJ1lFQVInKSAlPiUgbXV0YXRlKFBST1BPUlRJT04gPSBQT1BFU1RJTUFURSAvIENIQVJMT1RURVBPUCkgJT4lDQogIGdyb3VwX2J5KENUWU5BTUUpICU+JQ0KICBtdXRhdGUoQ0hBTkdFID0gaWZlbHNlKFlFQVIgPT0gMjAxMCwgMCwgUE9QRVNUSU1BVEUvbGFnKFBPUEVTVElNQVRFLCBkZWZhdWx0ID0gZmlyc3QoWUVBUikpIC0gMSkpICU+JQ0KICB1bmdyb3VwKCkNCg0KcG9wX2FnZV9nZW5kZXIgPC0gcG9wX2FnZV9nZW5kZXIgJT4lDQogIHNlbGVjdCgtY29udGFpbnMoJ19UT1QnKSwgLVBPUEVTVF9GRU0sIC1QT1BFU1RfTUFMRSwgLUFHRTE2UExVU19NQUxFLCAtQUdFMTZQTFVTX0ZFTSwgLUFHRTE4UExVU19GRU0sIC1BR0UxOFBMVVNfTUFMRSwgLVVOREVSNV9GRU0sIC1VTkRFUjVfTUFMRSwgLUFHRTE1NDRfRkVNLCAtQUdFMTU0NF9NQUxFLCAtTUVESUFOX0FHRV9GRU0sIC1NRURJQU5fQUdFX01BTEUsIC1BR0U2NVBMVVNfRkVNLC1BR0U2NVBMVVNfTUFMRSwgLUFHRTUxM19GRU0sIC1BR0U1MTNfTUFMRSwgLUFHRTQ1NjRfRkVNLCAtQUdFNDU2NF9NQUxFLCAtQUdFMjU0NF9GRU0sIC1BR0UyNTQ0X01BTEUsIC1BR0UxODI0X0ZFTSwgLUFHRTE4MjRfTUFMRSwgLUFHRTE0MTdfRkVNLCAtQUdFMTQxN19NQUxFKSAlPiUNCiAgcmVuYW1lKEFHRTAwNF9GRU0gPSBBR0UwNF9GRU0sIEFHRTAwNF9NQUxFID0gQUdFMDRfTUFMRSwgQUdFMDUwOV9NQUxFID0gQUdFNTlfTUFMRSwgQUdFMDUwOV9GRU0gPSBBR0U1OV9GRU0pDQpwb3BfYWdlX2dlbmRlciA8LSBwb3BfYWdlX2dlbmRlciAlPiUNCiAgcGl2b3RfbG9uZ2VyKGNvbHMgPSBjb2xuYW1lcyhwb3BfYWdlX2dlbmRlclssNTo0MF0pLCBuYW1lc190byA9ICdERU1PJywgdmFsdWVzX3RvID0gJ1BPUCcpICU+JQ0KICBtdXRhdGUoUEVSQ0VOVEFHRSA9IFBPUC9QT1BFU1RJTUFURSkNCnBvcF9hZ2VfZ2VuZGVyIDwtIHBvcF9hZ2VfZ2VuZGVyICU+JQ0KICBtdXRhdGUoR0VOREVSID0gYXMuZmFjdG9yKGlmZWxzZShncmVwbCgnTUFMRScsIHBvcF9hZ2VfZ2VuZGVyJERFTU8pLCdNQUxFJywnRkVNQUxFJykpLA0KICAgICAgICAgREVNTyA9IGdzdWIoJ19GRU0nLCcnLCBERU1PKSwNCiAgICAgICAgIERFTU8gPSBnc3ViKCdfTUFMRScsJycsIERFTU8pLA0KICAgICAgICAgREVNTyA9IGNhc2Vfd2hlbihERU1PID09ICdBR0UwMDQnIH4gJzAtMDQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBERU1PID09ICdBR0UwNTA5JyB+ICcwNS0wOScsDQogICAgICAgICAgICAgICAgICAgICAgICAgIERFTU8gPT0gJ0FHRTEwMTQnIH4gJzEwLTE0JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgREVNTyA9PSAnQUdFMTUxOScgfiAnMTUtMTknLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBERU1PID09ICdBR0UyMDI0JyB+ICcyMC0yNCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgIERFTU8gPT0gJ0FHRTI1MjknIH4gJzI1LTI5JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgREVNTyA9PSAnQUdFMzAzNCcgfiAnMzAtMzQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBERU1PID09ICdBR0UzNTM5JyB+ICczNS0zOScsDQogICAgICAgICAgICAgICAgICAgICAgICAgIERFTU8gPT0gJ0FHRTQwNDQnIH4gJzQwLTQ0JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgREVNTyA9PSAnQUdFNDU0OScgfiAnNDUtNDknLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBERU1PID09ICdBR0U1MDU0JyB+ICc1MC01NCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgIERFTU8gPT0gJ0FHRTU1NTknIH4gJzU1LTU5JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgREVNTyA9PSAnQUdFNjA2NCcgfiAnNjAtNjQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBERU1PID09ICdBR0U2NTY5JyB+ICc2NS02OScsDQogICAgICAgICAgICAgICAgICAgICAgICAgIERFTU8gPT0gJ0FHRTcwNzQnIH4gJzcwLTc0JywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgREVNTyA9PSAnQUdFNzU3OScgfiAnNzUtNzknLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBERU1PID09ICdBR0U4MDg0JyB+ICc4MC04NCcsDQogICAgICAgICAgICAgICAgICAgICAgICAgIERFTU8gPT0gJ0FHRTg1UExVUycgfiAnODUgYW5kIE92ZXInKSkNCg0KIyBNYWtpbmcgZXRobmljaXR5IGRhdGEgZnJhbWUNCmV0aHBvcCA8LSByYmluZChyZWFkX2NzdigiY2MtZXN0MjAxOS1hbGxkYXRhLTM3LmNzdiIsIHNob3dfY29sX3R5cGVzID0gRiksDQogICAgICAgICAgICAgICAgICAgcmVhZF9jc3YoImNjLWVzdDIwMTktYWxsZGF0YS00NS5jc3YiLCBzaG93X2NvbF90eXBlcyA9IEYpKSAlPiUNCiAgbXV0YXRlKENUWU5BTUUgPSBnc3ViKCcgQ291bnR5JywgJycsIENUWU5BTUUpLA0KICAgICAgICAgWUVBUiA9IGFzLmludGVnZXIoWUVBUiArIDIwMDcpLA0KICAgICAgICAgV0hJVEUgPSBOSFdBX01BTEUgKyBOSFdBX0ZFTUFMRSwNCiAgICAgICAgIEJMQUNLID0gTkhCQV9NQUxFICsgTkhCQV9GRU1BTEUsDQogICAgICAgICBISVNQQU5JQyA9IEhXQV9NQUxFICsgSFdBX0ZFTUFMRSArIEhCQV9NQUxFICsgSEJBX0ZFTUFMRSArIEhJQV9NQUxFICsgSElBX0ZFTUFMRSArIEhBQV9NQUxFICsgSEFBX0ZFTUFMRSArIEhOQV9NQUxFICsgSE5BX0ZFTUFMRSArIEhJQV9NQUxFICsgSElBX0ZFTUFMRSwNCiAgICAgICAgIEFTSUFOID0gTkhBQV9NQUxFICsgTkhBQV9GRU1BTEUsDQogICAgICAgICBJU0xBTkRFUiA9IE5ITkFfTUFMRSArIE5ITkFfRkVNQUxFLA0KICAgICAgICAgTkFUSVZFID0gTkhJQV9NQUxFICsgTkhJQV9GRU1BTEUsDQogICAgICAgICBNVUxUSVJBQ0lBTCA9IFRPTV9NQUxFICsgVE9NX0ZFTUFMRSAtIEhUT01fTUFMRSAtIEhUT01fRkVNQUxFDQogICAgICAgICApICU+JQ0KICBmaWx0ZXIoQ1RZTkFNRSAlaW4lIGNvdW50aWVzLCBZRUFSID49IDMsIEFHRUdSUCA9PSAwLA0KICAgICAgICAgIShTVE5BTUUgPT0gJ1NvdXRoIENhcm9saW5hJyAmIENUWU5BTUUgPT0gJ1VuaW9uJykpICU+JQ0KICBzZWxlY3QoU1ROQU1FLCBDVFlOQU1FLCBZRUFSLCBUT1RfUE9QLCBXSElURSwgQkxBQ0ssIEhJU1BBTklDLCBBU0lBTiwgSVNMQU5ERVIsIE5BVElWRSwgTVVMVElSQUNJQUwpICU+JQ0KICBkaXN0aW5jdCgpDQpldGhwb3AgPC0gZXRocG9wICU+JQ0KICBwaXZvdF9sb25nZXIoY29scyA9IGNvbG5hbWVzKGV0aHBvcFssNToxMV0pLCBuYW1lc190byA9ICdFVEhOSUNJVFknLCB2YWx1ZXNfdG8gPSAnUE9QJykNCg0KIyBNYWtpbmcgcGxhY2Ugb2YgYmlydGggZGF0YSBmcmFtZQ0KYmlydGhwbGFjZSA8LSByZWFkLmNzdignVmFsdWVzLmNzdicpICU+JQ0KICBtdXRhdGUoQ291bnR5ID0gZ3N1YignIENvdW50eSwgTm9ydGggQ2Fyb2xpbmEnLCAnJywgQ291bnR5KSwNCiAgICAgICAgIENvdW50eSA9IGdzdWIoJyBDb3VudHksIFNvdXRoIENhcm9saW5hJywgJycsIENvdW50eSkpICU+JQ0KICBmaWx0ZXIoSW5kaWNhdG9yID09ICdQbGFjZSBvZiBCaXJ0aCcsDQogICAgICAgICBDb3VudHkgJWluJSBjb3VudGllcywNCiAgICAgICAgICEoTWVhc3VyZSAlaW4lIGZvcmVpZ25fZGV0YWlsKSkgJT4lDQogIGRpc3RpbmN0KCkNCmJpcnRocGxhY2UgPC0gYmlydGhwbGFjZSAlPiUgaW5uZXJfam9pbigoYmlydGhwbGFjZSAlPiUgZ3JvdXBfYnkoQ291bnR5LCBZZWFyKSAlPiUgc3VtbWFyaXNlKFRvdGFsID0gc3VtKE51bWVyYXRvcl92YWx1ZSkpKSwgYnkgPSBjKCdDb3VudHknLCAnWWVhcicpKQ0KDQojIE1ha2luZyB0aGUgdW5lbXBsb3ltZW50IGRhdGEgZnJhbWUNCnVuZW1wbG95bWVudCA8LSByYmluZChyZWFkX2V4Y2VsKCd1cl9hbnNvbi54bHN4JywgdHJpbV93cyA9IFQpICU+JSBtdXRhdGUoQ291bnR5ID0gJ0Fuc29uJywgUGVyaW9kID0gZ3N1YignTScsICcnLCBQZXJpb2QpKSwNCiAgICAgICAgICAgICAgICAgICAgICByZWFkX2V4Y2VsKCd1cl9jYWJhcnJ1cy54bHN4JywgdHJpbV93cyA9IFQpICU+JSBtdXRhdGUoQ291bnR5ID0gJ0NhYmFycnVzJywgUGVyaW9kID0gZ3N1YignTScsICcnLCBQZXJpb2QpKSwNCiAgICAgICAgICAgICAgICAgICAgICByZWFkX2V4Y2VsKCd1cl9jYXRhd2JhLnhsc3gnLCB0cmltX3dzID0gVCkgJT4lIG11dGF0ZShDb3VudHkgPSAnQ2F0YXdiYScsIFBlcmlvZCA9IGdzdWIoJ00nLCAnJywgUGVyaW9kKSksDQogICAgICAgICAgICAgICAgICAgICAgcmVhZF9leGNlbCgndXJfY2xldmVsYW5kLnhsc3gnLCB0cmltX3dzID0gVCkgJT4lIG11dGF0ZShDb3VudHkgPSAnQ2xldmVsYW5kJywgUGVyaW9kID0gZ3N1YignTScsICcnLCBQZXJpb2QpKSwNCiAgICAgICAgICAgICAgICAgICAgICByZWFkX2V4Y2VsKCd1cl9nYXN0b24ueGxzeCcsIHRyaW1fd3MgPSBUKSAlPiUgbXV0YXRlKENvdW50eSA9ICdHYXN0b24nLCBQZXJpb2QgPSBnc3ViKCdNJywgJycsIFBlcmlvZCkpLA0KICAgICAgICAgICAgICAgICAgICAgIHJlYWRfZXhjZWwoJ3VyX2lyZWRlbGwueGxzeCcsIHRyaW1fd3MgPSBUKSAlPiUgbXV0YXRlKENvdW50eSA9ICdJcmVkZWxsJywgUGVyaW9kID0gZ3N1YignTScsICcnLCBQZXJpb2QpKSwNCiAgICAgICAgICAgICAgICAgICAgICByZWFkX2V4Y2VsKCd1cl9sYW5jYXN0ZXIueGxzeCcsIHRyaW1fd3MgPSBUKSAlPiUgbXV0YXRlKENvdW50eSA9ICdMYW5jYXN0ZXInLCBQZXJpb2QgPSBnc3ViKCdNJywgJycsIFBlcmlvZCkpLA0KICAgICAgICAgICAgICAgICAgICAgIHJlYWRfZXhjZWwoJ3VyX2xpbmNvbG4ueGxzeCcsIHRyaW1fd3MgPSBUKSAlPiUgbXV0YXRlKENvdW50eSA9ICdMaW5jb2xuJywgUGVyaW9kID0gZ3N1YignTScsICcnLCBQZXJpb2QpKSwNCiAgICAgICAgICAgICAgICAgICAgICByZWFkX2V4Y2VsKCd1cl9tZWNrbGVuYnVyZy54bHN4JywgdHJpbV93cyA9IFQpICU+JSBtdXRhdGUoQ291bnR5ID0gJ01lY2tsZW5idXJnJywgUGVyaW9kID0gZ3N1YignTScsICcnLCBQZXJpb2QpKSwNCiAgICAgICAgICAgICAgICAgICAgICByZWFkX2V4Y2VsKCd1cl9yb3dhbi54bHN4JywgdHJpbV93cyA9IFQpICU+JSBtdXRhdGUoQ291bnR5ID0gJ1Jvd2FuJywgUGVyaW9kID0gZ3N1YignTScsICcnLCBQZXJpb2QpKSwNCiAgICAgICAgICAgICAgICAgICAgICByZWFkX2V4Y2VsKCd1cl91bmlvbi54bHN4JywgdHJpbV93cyA9IFQpICU+JSBtdXRhdGUoQ291bnR5ID0gJ1VuaW9uJywgUGVyaW9kID0gZ3N1YignTScsICcnLCBQZXJpb2QpKSwNCiAgICAgICAgICAgICAgICAgICAgICByZWFkX2V4Y2VsKCd1cl95b3JrLnhsc3gnLCB0cmltX3dzID0gVCkgJT4lIG11dGF0ZShDb3VudHkgPSAnWW9yaycsIFBlcmlvZCA9IGdzdWIoJ00nLCAnJywgUGVyaW9kKSkpICU+JQ0KICBtdXRhdGUoWWVhciA9IGFzLmludGVnZXIoWWVhciksDQogICAgICAgICBQZXJpb2QgPSBhcy5pbnRlZ2VyKFBlcmlvZCksDQogICAgICAgICBEYXRlID0gYXMuRGF0ZShwYXN0ZShZZWFyLCctJyxQZXJpb2QsICctMDEnLCBzZXAgPSAnJykpLA0KICAgICAgICAgVmFsdWUgPSBWYWx1ZS8xMDApICU+JQ0KICByZW5hbWUoTW9udGggPSBQZXJpb2QsDQogICAgICAgICBVbmVtcGxveW1lbnQgPSBWYWx1ZSkNCg0KIyBNYWtlIGluY29tZSBkYXRhIGZyYW1lDQppbmNvbWUgPC0gcmVhZC5jc3YoJ1ZhbHVlcy5jc3YnKSAlPiUNCiAgbXV0YXRlKENvdW50eSA9IGdzdWIoJyBDb3VudHksIE5vcnRoIENhcm9saW5hJywgJycsIENvdW50eSksDQogICAgICAgICBDb3VudHkgPSBnc3ViKCcgQ291bnR5LCBTb3V0aCBDYXJvbGluYScsICcnLCBDb3VudHkpKSAlPiUNCiAgZmlsdGVyKEluZGljYXRvciA9PSAnSW5jb21lICYgRWFybmluZ3MnLA0KICAgICAgICAgQ291bnR5ICVpbiUgY291bnRpZXMsDQogICAgICAgICBNZWFzdXJlICE9ICdIb3VzZWhvbGQgSW5jb21lOiBUb3RhbCcpICU+JQ0KICBkaXN0aW5jdCgpDQppbmNvbWUgPC0gaW5jb21lICU+JSBpbm5lcl9qb2luKChpbmNvbWUgJT4lIGdyb3VwX2J5KENvdW50eSwgWWVhcikgJT4lIHN1bW1hcmlzZShUb3RhbCA9IHN1bShOdW1lcmF0b3JfdmFsdWUpKSksIGJ5ID0gYygnQ291bnR5JywgJ1llYXInKSkNCg0KIyBNYWtlIGVkdWNhdGlvbiBhdHRhaW5tZW50IGRhdGEgZnJhbWUNCmVkdWNhdGlvbiA8LSByZWFkLmNzdignVmFsdWVzLmNzdicpICU+JQ0KICBtdXRhdGUoQ291bnR5ID0gZ3N1YignIENvdW50eSwgTm9ydGggQ2Fyb2xpbmEnLCAnJywgQ291bnR5KSwNCiAgICAgICAgIENvdW50eSA9IGdzdWIoJyBDb3VudHksIFNvdXRoIENhcm9saW5hJywgJycsIENvdW50eSkpICU+JQ0KICBmaWx0ZXIoSW5kaWNhdG9yID09ICdFZHVjYXRpb25hbCBBdHRhaW5tZW50JywNCiAgICAgICAgIENvdW50eSAlaW4lIGNvdW50aWVzLA0KICAgICAgICAgTWVhc3VyZSAlaW4lIGF0dGFpbm1lbnRfbHZsKSAlPiUNCiAgZGlzdGluY3QoKQ0KZWR1Y2F0aW9uIDwtIGVkdWNhdGlvbiAlPiUgaW5uZXJfam9pbigoZWR1Y2F0aW9uICU+JSBncm91cF9ieShDb3VudHksIFllYXIpICU+JSBzdW1tYXJpc2UoVG90YWwgPSBzdW0oTnVtZXJhdG9yX3ZhbHVlKSkpLCBieSA9IGMoJ0NvdW50eScsICdZZWFyJykpICU+JQ0KICBtdXRhdGUoT3JkZXIgPSBhcy5mYWN0b3IoY2FzZV93aGVuKA0KICAgIE1lYXN1cmUgPT0gJ0hpZ2hlc3QgRGVncmVlOiBMZXNzIHRoYW4gYSBIaWdoIFNjaG9vbCBEaXBsb21hJyB+IDEsDQogICAgTWVhc3VyZSA9PSAnSGlnaGVzdCBEZWdyZWU6IEhpZ2ggU2Nob29sIERpcGxvbWEnIH4gMiwNCiAgICBNZWFzdXJlID09ICdIaWdoZXN0IERlZ3JlZTogU29tZSBDb2xsZWdlLCBObyBEZWdyZWUnIH4gMywNCiAgICBNZWFzdXJlID09ICJIaWdoZXN0IERlZ3JlZTogQXNzb2NpYXRlJ3MgRGVncmVlIiB+IDQsDQogICAgTWVhc3VyZSA9PSAiSGlnaGVzdCBEZWdyZWU6IEJhY2hlbG9yJ3MgRGVncmVlIiB+IDUsDQogICAgTWVhc3VyZSA9PSAiSGlnaGVzdCBEZWdyZWU6IEdyYWR1YXRlIG9yIFByb2Zlc3Npb25hbCBEZWdyZWUiIH4gNikpKQ0KIyBNYWtlIGhlYWx0aCBjYXJlIGNvdmVyYWdlIGRhdGEgZnJhbWUNCmNvdmVyYWdlIDwtIHJlYWQuY3N2KCdWYWx1ZXMuY3N2JykgJT4lDQogIG11dGF0ZShDb3VudHkgPSBnc3ViKCcgQ291bnR5LCBOb3J0aCBDYXJvbGluYScsICcnLCBDb3VudHkpLA0KICAgICAgICAgQ291bnR5ID0gZ3N1YignIENvdW50eSwgU291dGggQ2Fyb2xpbmEnLCAnJywgQ291bnR5KSkgJT4lDQogIGZpbHRlcihJbmRpY2F0b3IgPT0gJ0hlYWx0aCBDYXJlIENvdmVyYWdlJywNCiAgICAgICAgIENvdW50eSAlaW4lIGNvdW50aWVzKQ0KIyBNYWtlIGhvdXNpbmcgYWdlIGRhdGEgZnJhbWUNCmhvdXNpbmcgPC0gcmVhZC5jc3YoJ1ZhbHVlcy5jc3YnKSAlPiUNCiAgbXV0YXRlKENvdW50eSA9IGdzdWIoJyBDb3VudHksIE5vcnRoIENhcm9saW5hJywgJycsIENvdW50eSksDQogICAgICAgICBDb3VudHkgPSBnc3ViKCcgQ291bnR5LCBTb3V0aCBDYXJvbGluYScsICcnLCBDb3VudHkpKSAlPiUNCiAgZmlsdGVyKEluZGljYXRvciA9PSAnSG91c2luZyBTdG9jaycsDQogICAgICAgICBDb3VudHkgJWluJSBjb3VudGllcykNCiMgTWFrZSBwb3ZlcnR5IGZpZ3VyZXMgZGF0YSBmcmFtZQ0KcG92ZXJ0eSA8LSByZWFkLmNzdignVmFsdWVzLmNzdicpICU+JQ0KICBtdXRhdGUoQ291bnR5ID0gZ3N1YignIENvdW50eSwgTm9ydGggQ2Fyb2xpbmEnLCAnJywgQ291bnR5KSwNCiAgICAgICAgIENvdW50eSA9IGdzdWIoJyBDb3VudHksIFNvdXRoIENhcm9saW5hJywgJycsIENvdW50eSkpICU+JQ0KICBmaWx0ZXIoTWVhc3VyZSA9PSAnSW5kaXZpZHVhbHMgaW4gUG92ZXJ0eScsDQogICAgICAgICBUaGVtZSA9PSAnU29jaWFsIFdlbGwtQmVpbmcnLA0KICAgICAgICAgQ291bnR5ICVpbiUgY291bnRpZXMpDQojIE1ha2UgdHJhbnNwb3J0YXRpb24gbWVhbnMgZGF0YSBmcmFtZQ0KdHJhbnNwb3J0YXRpb24gPC0gcmVhZC5jc3YoJ1ZhbHVlcy5jc3YnKSAlPiUNCiAgbXV0YXRlKENvdW50eSA9IGdzdWIoJyBDb3VudHksIE5vcnRoIENhcm9saW5hJywgJycsIENvdW50eSksDQogICAgICAgICBDb3VudHkgPSBnc3ViKCcgQ291bnR5LCBTb3V0aCBDYXJvbGluYScsICcnLCBDb3VudHkpKSAlPiUNCiAgZmlsdGVyKFRoZW1lID09ICdUcmFuc3BvcnRhdGlvbicsDQogICAgICAgICBNZWFzdXJlICE9ICdDb21tdXRpbmcgTWVhbnMgVG90YWwnLA0KICAgICAgICAgQ291bnR5ICVpbiUgY291bnRpZXMpDQpgYGANCg0KDQojIERlbW9ncmFwaGljcw0KIyMgUG9wdWxhdGlvbg0KYGBge3J9DQpwbG90X2x5KGNvdW50eXBvcCAlPiUgZmlsdGVyKFlFQVIgPT0gMjAxOSksIHggPSB+UE9QRVNUSU1BVEUsIHkgPSB+Q1RZTkFNRSwgdHlwZSA9ICdiYXInLCBjb2xvciA9IH5DVFlOQU1FLCBjb2xvcnMgPSBjb2xvcl9hLCBvcmllbnRhdGlvbiA9ICdoJykNCg0KcGxvdF9seShjb3VudHlwb3AsIHg9fllFQVIsIHk9fkNIQU5HRSwgY29sb3I9fkNUWU5BTUUsIHR5cGU9J3NjYXR0ZXInLCBtb2RlPSdsaW5lcycsIGNvbG9ycz1jb2xvcl9hKQ0KYGBgDQoNCiMjIEFnZSAmIEdlbmRlcg0KYGBge3IsIGZpZy5oZWlnaHQgPSA2LCBmaWcud2lkdGg9IDEwfQ0KcGxvdF9seShwb3BfYWdlX2dlbmRlciAlPiUgZmlsdGVyKFlFQVIgPT0gMjAxNywgQ1RZTkFNRSA9PSAnQ2hhcmxvdHRlIFJlZ2lvbicsIEdFTkRFUiA9PSAiTUFMRSIpLA0KICAgICAgICB5PX5ERU1PLCB4PX5QRVJDRU5UQUdFLA0KICAgICAgICB0eXBlPSdiYXInLCBuYW1lID0gJ01hbGUnKSAlPiUNCiAgYWRkX3RyYWNlKGRhdGEgPSBwb3BfYWdlX2dlbmRlciAlPiUgZmlsdGVyKFlFQVIgPT0gMjAxNywgQ1RZTkFNRSA9PSAnQ2hhcmxvdHRlIFJlZ2lvbicsIEdFTkRFUiA9PSAiRkVNQUxFIiksIHk9fkRFTU8sIG5hbWUgPSAnRmVtYWxlJykNCmBgYA0KDQojIyBSYWNlICYgRXRobmljaXR5DQpgYGB7cn0NCnBsb3RfbHkoZXRocG9wICU+JSBmaWx0ZXIoWUVBUiA9PSAyMDE5KSwNCiAgICAgICAgeT1+Q1RZTkFNRSwgeD1+UE9QL1RPVF9QT1AsIGNvbG9yPX5FVEhOSUNJVFksDQogICAgICAgIHR5cGU9J2JhcicpICU+JQ0KICBsYXlvdXQoYmFybW9kZSA9ICdzdGFjaycpDQpgYGANCg0KIyMgUGxhY2Ugb2YgQmlydGgNCmBgYHtyfQ0KcGxvdF9seShiaXJ0aHBsYWNlICU+JSBmaWx0ZXIoWWVhciA9PSAyMDE5KSwNCiAgICAgICAgeT1+Q291bnR5LCB4PX5OdW1lcmF0b3JfdmFsdWUvVG90YWwsIGNvbG9yPX5NZWFzdXJlLA0KICAgICAgICB0eXBlPSdiYXInKSAlPiUNCiAgbGF5b3V0KGJhcm1vZGUgPSAnc3RhY2snKQ0KYGBgDQoNCg0KDQojIEVjb25vbXkNCiMjIFVuZW1wbG95bWVudA0KYGBge3J9DQojIyMjIEdPIFRPIEVYQ0VMIFNPVVJDRSBBTkQgUFVMTCBEQVRBIEZPUiBDSEVTVEVSIGFuZCBTVEFOTFkNCmdncGxvdCh1bmVtcGxveW1lbnQpICsNCiAgZ2VvbV9saW5lKGFlcyh4ID0gRGF0ZSwgeSA9IFVuZW1wbG95bWVudCwgY29sb3IgPSBDb3VudHkpKQ0KDQpnZ3Bsb3QodW5lbXBsb3ltZW50ICU+JSBmaWx0ZXIoWWVhciA9PSAyMDE1LCBNb250aCA9PSA2KSkgKw0KICBnZW9tX2NvbChhZXMoeCA9IENvdW50eSwgeSA9IFVuZW1wbG95bWVudCwgZmlsbCA9IENvdW50eSkpICsgY29vcmRfZmxpcCgpDQpgYGANCg0KIyMgSW5jb21lDQpgYGB7cn0NCiMjIyMgREZzIGZyb20gVmFsdWVzLmNzdiBhcmUgbWlzc2luZyBBbnNvbiwgQ2hlc3RlciwgYW5kIFN0YW5seSBDb3VudGllcw0KZ2dwbG90KGluY29tZSAlPiUgZmlsdGVyKFllYXIgPT0gMjAxNCksIGFlcyh4ID0gQ291bnR5LCB5ID0gKE51bWVyYXRvcl92YWx1ZSAvIFRvdGFsKSwgZmlsbCA9IE1lYXN1cmUpLCBwb3NpdGlvbiA9ICdmaWxsJykgKw0KICBnZW9tX2NvbCgpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscyA9IHNjYWxlczo6cGVyY2VudCkgKw0KICBjb29yZF9mbGlwKCkNCmBgYA0KDQojIEVkdWNhdGlvbg0KIyMgRWR1Y2F0aW9uYWwgQXR0YWlubWVudA0KYGBge3J9DQpnZ3Bsb3QoYXJyYW5nZShlZHVjYXRpb24sIE9yZGVyKSAlPiUgZmlsdGVyKFllYXIgPT0gMjAxNCksIGFlcyh4ID0gQ291bnR5LCB5ID0gKE51bWVyYXRvcl92YWx1ZSAvIFRvdGFsKSwgZmlsbCA9IE9yZGVyKSwgcG9zaXRpb24gPSAnZmlsbCcpICsNCiAgZ2VvbV9jb2woKSArDQogIHNjYWxlX3lfY29udGludW91cyhsYWJlbHMgPSBzY2FsZXM6OnBlcmNlbnQpICsNCiAgY29vcmRfZmxpcCgpKw0KICBzY2FsZV9maWxsX2Rpc2NyZXRlKGxhYmVscyA9IGF0dGFpbm1lbnRfbHZsLCBuYW1lID0gJycpDQpgYGANCg0KIyBIZWFsdGgNCiMjIEhlYWx0aCBDYXJlIENvdmVyYWdlDQpgYGB7cn0NCmNvdmVyYWdlICU+JSBmaWx0ZXIoTWVhc3VyZSA9PSAiSGVhbHRoIEluc3VyYW5jZSBUb3RhbCIsIFllYXIgPT0gMjAxNykgJT4lDQogIGdncGxvdCguLCBhZXMoeCA9IENvdW50eSwgeSA9IE51bWVyYXRvcl92YWx1ZSwgZmlsbCA9IENvdW50eSkpKw0KICBnZW9tX2NvbCgpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscyA9IGNvbW1hKSArDQogIGNvb3JkX2ZsaXAoKQ0KY292ZXJhZ2UgJT4lIGZpbHRlcihZZWFyID09IDIwMTcsICEoTWVhc3VyZSAlaW4lIGMoIkhlYWx0aCBJbnN1cmFuY2UgVG90YWwiLCAiUGVvcGxlIHdpdGggSGVhbHRoIEluc3VyYW5jZSIpKSkgJT4lDQogIGdncGxvdChhZXMoeCA9IENvdW50eSwgeSA9IE51bWVyYXRvcl92YWx1ZSwgZmlsbCA9IE1lYXN1cmUsIHBvc2l0aW9uID0gTWVhc3VyZSkpICsNCiAgZ2VvbV9jb2wocG9zaXRpb24gPSAiZG9kZ2UiKSArDQogIHNjYWxlX3lfY29udGludW91cyhsYWJlbHMgPSBjb21tYSkgKw0KICBjb29yZF9mbGlwKCkNCmBgYA0KIyBIb3VzaW5nDQojIyBIb3VzaW5nIEFnZQ0KYGBge3J9DQpob3VzaW5nICU+JSBmaWx0ZXIoWWVhciA9PSAyMDE3KSAlPiUNCiAgZ2dwbG90KGFlcyh4PSBDb3VudHksIHkgPSBZZWFyLU51bWVyYXRvcl92YWx1ZSwgZmlsbCA9IENvdW50eSkpICsNCiAgZ2VvbV9jb2woKSArDQogIGNvb3JkX2ZsaXAoKQ0KYGBgDQojIFNvY2lhbCBXZWxsLUJlaW5nDQojIyBQb3ZlcnR5DQpgYGB7cn0NCnBvdmVydHkgJT4lIGZpbHRlcihZZWFyID09IDIwMTApICU+JQ0KICBnZ3Bsb3QoLiwgYWVzKHggPSBDb3VudHksIHkgPSBOdW1lcmF0b3JfdmFsdWUvRGVub21pbmF0b3JfdmFsdWUsIGZpbGwgPSBDb3VudHkpKSArDQogIGdlb21fY29sKCkgKw0KICBjb29yZF9mbGlwKCkNCmBgYA0KIyBUcmFuc3BvcnRhdGlvbg0KIyNDb21tdXRpbmcgTW9kZXMNCmBgYHtyLCBldmFsPUZBTFNFfQ0KIyBXYXkgdG9vIG1hbnkgbWlzc2luZyB2YWx1ZXMgdG8gY3JlYXRlIGEgc3Vic3RhbnRpdmUgdmlzdWFsaXphdGlvbi4NCnRyYW5zcG9ydGF0aW9uICU+JSBmaWx0ZXIoWWVhciA9PSAyMDE0KSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gQ291bnR5LCB5ID0gTnVtZXJhdG9yX3ZhbHVlLCBmaWxsID0gTWVhc3VyZSwgcG9zaXRpb24gPSBNZWFzdXJlKSkgKw0KICBnZW9tX2NvbChwb3NpdGlvbiA9ICdkb2RnZScpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscyA9IGNvbW1hKSArDQogIGNvb3JkX2ZsaXAoKQ0KYGBgDQoNCg0KDQoNCg==
Social Well-Being
Poverty